package main

import "fmt"

func main() {
	IotaTest()
}

/**go语言中的常量类型*/
/**
iota 常量生成器
 iota常量生成器初始化，它用于生成一组以相似规则初始化的常量，但是不用每行都 写一遍初始化表达式。
 在一个const声明语句中，在第一个声明的常量所在的行，iota将会被置为0，然 后在每一个有常量声明的行加一。
 随着iota的递增，每个常量对应表达式1 << iota，是连续的2的幂，分别对应一个bit位置。
*/
func IotaTest() {
	type Flags uint
	const (
		FlagUp           Flags = 1 << iota // is up
		FlagBroadcast                      // supports broadcast access capability
		FlagLoopback                       // is a loopback interface
		FlagPointToPoint                   // belongs to a point-to-point link
		FlagMulticast                      // supports multicast access capability
	)
	fmt.Println(Flags(2))
}
